package me.jiatao.wan.common.ui

import android.os.Bundle
import android.view.View
import androidx.fragment.app.Fragment
import dagger.hilt.android.AndroidEntryPoint

/**
 * @Author: taojia
 * @CreateDate: 2021/9/1 1:40 下午
 * @Version: 1.0
 * @Description:ViewPager2与Fragment结合使用时懒加载数据
 *
 * 当跨tab点击时，例如从tab1点击tab3：tab2与tab3的[onViewCreated]都会执行
 * 但只会执行tab3的[onResume],所以这里可以在onResume方法加载数据
 */

@AndroidEntryPoint
abstract class LazyFragment : Fragment() {

    /**
     * 是否第一次加载
     */
    private var isFirstLoad = true

    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        initView(view)
    }

    override fun onResume() {
        super.onResume()

        if (isFirstLoad) {
            // 将数据加载逻辑放到onResume()方法中
            initData()
            isFirstLoad = false;
        }
    }

    /**
     * 初始化视图
     *
     * @param view
     */
    protected open fun initView(view: View) {}

    /**
     * 初始化数据
     */
    protected open fun initData() {}
}